package com.xinke.module.system.service.oauth2;

import javax.validation.*;
import com.xinke.module.system.model.vo.oauth2.*;
import com.xinke.module.system.model.entity.oauth2.OAuth2CodeDO;
import com.xinke.component.common.pojo.PageResult;

/**
 * OAuth2 授权码 Service 接口
 *
 * @author yzx
 */
public interface OAuth2CodeService {

    /**
     * 创建OAuth2 授权码
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createOAuth2Code(@Valid OAuth2CodeSaveReqVO createReqVO);

    /**
     * 更新OAuth2 授权码
     *
     * @param updateReqVO 更新信息
     */
    void updateOAuth2Code(@Valid OAuth2CodeSaveReqVO updateReqVO);

    /**
     * 删除OAuth2 授权码
     *
     * @param codeId 编号
     */
    void deleteOAuth2Code(Long codeId);

    /**
     * 获得OAuth2 授权码
     *
     * @param codeId 编号
     * @return OAuth2 授权码
     */
    OAuth2CodeDO getOAuth2Code(Long codeId);

    /**
     * 获得OAuth2 授权码分页
     *
     * @param pageReqVO 分页查询
     * @return OAuth2 授权码分页
     */
    PageResult<OAuth2CodeDO> getOAuth2CodePage(OAuth2CodePageReqVO pageReqVO);

}